//
//  RBGSplashScreenController.m
//  BateauGenerique
//
//  Created by Kevin De Jesus Ferreira on 21/05/2014.
//  Copyright (c) 2014 Kevin De Jesus Ferreira. All rights reserved.
//

#import "RBGSplashScreenController.h"
#import "RBGConfigurationClientService.h"
#import "Constantes.h"
#import "UIImageView+WebCache.h"
#import "RBGAppDelegate.h"
#import "RBGServiceChargement.h"
#import "Parametres.h"
#import "Donnees.h"

@interface RBGSplashScreenController ()<RBGServiceChargementDelegate,UIAlertViewDelegate>{
    RBGAppDelegate *appDelegate;
    RBGServiceChargement * chargement ;
    Donnees * objetDonnees;
    bool first;
    NSTimer * timer;
}

@end

@implementation RBGSplashScreenController


- (void)viewDidLoad
{
    [super viewDidLoad];
    
    first = YES;
    self.navigationController.navigationBarHidden = true;
    [self charger];
    appDelegate = (RBGAppDelegate *)[[UIApplication sharedApplication] delegate];
    
}

-(void) viewDidDisappear:(BOOL)animated
{
    [timer invalidate];
    timer = nil;
}

-(void) viewWillAppear:(BOOL)animated{
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
}

-(void) charger{
    
    objetDonnees = [[Donnees alloc]init];
    chargement = [[RBGServiceChargement alloc]init];
    chargement.delegate = self;
    
    [chargement getParametreClient];
    
}

- (void) receiveDonneesChargement:(id)donnees
                         andType :(int)typeDonnees{
    
    if(typeDonnees == parametre){
        objetDonnees.parametres = (Parametres *) donnees;
        [self.splash setImageWithURL:[NSURL URLWithString:objetDonnees.parametres.imageStart640x1136]];
        [chargement chargerTypesCategories:YES];
    }
    
    if(typeDonnees == typesCategories){
        objetDonnees.typeCategories = (NSArray *) donnees;
        [chargement chargerTypesCategories:NO];
    }
    
    if(typeDonnees == typesCategoriesTOUTES){
        
        objetDonnees.typeCategorieTOUTES = (NSArray *) donnees;
        [chargement chargerEtats];
    }
    
    if(typeDonnees == etats){
        objetDonnees.etats = (NSArray *) donnees;
        [chargement chargerDepartements];
    }
    
    if(typeDonnees == departements){
        objetDonnees.departements = (NSArray *) donnees;
        [chargement chargerEnergies];
    }
    
    if(typeDonnees == energies){
        objetDonnees.energies = (NSArray *) donnees;
        [chargement chargerServices];
    }
    
    if(typeDonnees == services){
        objetDonnees.services = (NSArray *) donnees;
        [chargement chargerLieux];
    }
    
    if(typeDonnees == lieux){
        objetDonnees.lieux = (NSArray *) donnees;
        [chargement chargerMarquesBateauType:BATEAU_A_MOTEUR andIdClient:nil andWa:false];
    }
    
    if(typeDonnees == TOUTESmarquesBateauxAMoteur){
        objetDonnees.TOUTESmarques = [[NSMutableDictionary alloc]init];
        
        [objetDonnees.TOUTESmarques addEntriesFromDictionary:@{
                                                               BATEAU_A_MOTEUR:donnees
                                                               }];
        
        [chargement chargerMarquesBateauType:VOILIER andIdClient:nil andWa:NO];
        
    }
    
    if(typeDonnees == TOUTESmarquesVoilier){
        
        [objetDonnees.TOUTESmarques addEntriesFromDictionary:@{
                                                               VOILIER:donnees
                                                               }];
        
        [chargement chargerMarquesBateauType:PNEU andIdClient:nil andWa:NO];
        
    }
    
    if(typeDonnees == TOUTESmarquesPneu){
        
        [objetDonnees.TOUTESmarques addEntriesFromDictionary:@{
                                                               PNEU:donnees
                                                               }];
        
        [chargement chargerMarquesMoteurs:nil andWA:NO];
    }
    
    if(typeDonnees == TOUTESmarquesMoteur){
       
        [objetDonnees.TOUTESmarques addEntriesFromDictionary:@{
                                                               MOTEURS:donnees
                                                               }];
        [chargement chargerMarquesBateauType:nil andIdClient:nil andWa:YES];
    }
    
    if(typeDonnees == toutesMarques){
        objetDonnees.marques = [[NSMutableDictionary alloc]init];
        objetDonnees.toutesMarques = (NSArray *)donnees;
        [objetDonnees.marques addEntriesFromDictionary:@{
                                                         @"0":donnees
                                                         }];
        [objetDonnees.TOUTESmarques addEntriesFromDictionary:@{
                                                               @"0":donnees
                                                               }];
        
        [chargement chargerMarquesBateauType:BATEAU_A_MOTEUR andIdClient:nil andWa:YES];
    }
    
    if(typeDonnees == marquesBateauxAMoteur){
        
        [objetDonnees.marques addEntriesFromDictionary:@{
                                                         BATEAU_A_MOTEUR:donnees
                                                         }];
        [chargement chargerMarquesBateauType:VOILIER andIdClient:nil andWa:YES];

    }
    
    if(typeDonnees == marquesVoilier){
        
        [objetDonnees.marques addEntriesFromDictionary:@{
                                                         VOILIER:donnees
                                                         }];
        [chargement chargerMarquesBateauType:PNEU andIdClient:nil andWa:YES];
        
    }
    
    if(typeDonnees == marquesPneu){
        
        [objetDonnees.marques addEntriesFromDictionary:@{
                                                         PNEU:donnees
                                                         }];
        [chargement chargerMarquesMoteurs:nil andWA:YES];
        
    }
    
    if(typeDonnees == marquesMoteur){
        
        [objetDonnees.marques addEntriesFromDictionary:@{
                                                         MOTEURS:donnees
                                                         }];
        
        [chargement chargerMarquesDistribuees];
    }
    
    if(typeDonnees == marquedistribuee){

        objetDonnees.marquesDistribuee = (NSArray *) donnees;
        [chargement chargerRegions];

    }
    
    if(typeDonnees == regions){
        objetDonnees.regions = (NSArray *) donnees;
        [self.delegate receiveDonnees:objetDonnees];
    }


    
}

-(void)attendre
{
    
    if(!first){
        [timer invalidate];
        timer = nil;
    }
    
    first = NO;
}

- (void) receiveErreurChargement:(int)statut{
    [self.delegate receiveErreur:statut];
    UIAlertView *alert = [[UIAlertView alloc]
                          
                          initWithTitle:@"Erreur"
                          message:@"Erreur réseau : votre téléphone ne peut pas accéder aux informations"
                          delegate:self
                          cancelButtonTitle:@"Ok"
                          otherButtonTitles:nil];
    
    [alert show];
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    [[NSThread mainThread] cancel];
}
@end
